<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 作用域 变量的作用范围；
        // 1.全局作用域 2.局部作用域 （函数作用域）
        // 1.全局作用域 ；在全局定义的各种变量
        // var a = 10;  //全局定义的a
        // console.log(a);
        // 2.局部作用域（函数作用域）：在函数内部定义的；
        // 函数内部定义的变量只能函数内部使用；
        // function fun1(){
        //     var a = 10;
        //     console.log(a);
        // }
        // fun1();
        // console.log(a);


        // function fun1(){
        //     var a = 10;
        //     console.log(a);
        // }

        // function fun2(){
        //     var b = 20;
        //     console.log(a);
        // }
        // fun1();
        // fun2();


        // 3.函数作用域 访问规则 
        // 函数作用域的访问规则 ： 函数内部可以访问内部的变量 也可以访问上层定义的各种变量；
        // 函数内部访问变量 ，先查找内部是否有这个变量 ，如果有直接使用，如果没有会向上层查找改变量
        // 上层有 就使用 ，如果没有继续向上层查找全局作用域 全局作用域有就使用；

        // 注意 ：变量的访问只能上上查找 不能向下查找；
        // var a = 20;
        // function fun1(){
        //     // var a = 10;
        //     function fun2(){
        //         console.log(a);
        //     }
        //     fun2();
        // }

        // fun1();

        // var a = 40;

        // function fun1(){
        //     // console.log(a);
        //     // var a = 30;
        //     fun2();
        //     function fun2(){
        //         // var a = 20;
        //         fun3();
        //         function fun3(){
        //             var a = 10;
        //             console.log(a);
        //         }

        //     }
        // }

        // fun1();

        function fn(a){
            // var a = 1;
            return function(b){
                // var b = 2;
                return function(c){
                    // var c = 3;
                    return a + b + c;
                }
            }
        }

       var res =  fn(1)(2)(3);
       console.log(res);






    </script>
</body>
</html>